Многие сетевые протоколы не предусматривают
практически никаких договоренностей между пользователем и сетью по поводу
предоставляемого качества обслуживания. В лучшем случае, сеть обязуется
предоставить всем пользователям более-менее справедливое распределение
пропускной способности.
В сетях ATM справедливое распределение
может быть достигнуто за счет корректировки скорости работы приложений
в соответствии с требованиями сети. В отличие от пакетных сетей, технология
ATM позволяет резервировать необходимую пропускную способность для трафика
с гарантированной скоростью передачи (категория услуг CBR) и критичного
к задержкам трафика (категория услуг VBR-rt). Оставшуюся после резервирования
для категорий услуг CBR и VBR пропускную способность делят между собой
все остальные приложения. В рамках Форума ATM им выделена собственная категория
услуг — UBR.
Приложениям, использующим категорию
услуг UBR, не гарантируется какая-либо пропускная способность и отсутствие
потерь ячеек при возникновении перегрузок в сети. Сеть оставляет за собой
право изъять данные пользователя по своему усмотрению, без уведомления.
Чтобы уменьшить потери и оградить сеть от возникновения перегрузок при
передаче такого рода трафика, Форум ATM ввел еще одну категорию услуг —
ABR. Она предусматривает алгоритмы управления потоком, с помощью которых
пользователь может быть своевременно уведомлен о наличии свободных ресурсов
в сети.
В основе разработок по управлению
потоком ABR лежат два принципиально разных подхода — скоростная схема и
кредитная схема. При применении скоростной схемы сеть в явном виде сообщает
источнику трафика величину скорости, с которой он может передавать в ячейку
в данный момент времени. Эта схема широко используется, и принцип ее работы
хорошо известен.
В случае кредитной схемы коммутаторы
ATM посылают источнику информацию о размере свободного буферного пространства
(а не пропускной способности) — так называемый «кредит», и одновременно
они резервируют выделенное буферное пространство под трафик по данному
виртуальному соединению VC. После этого источник может передать ровно такое
количество ячеек, на которое у него имеется «кредит». Таким образом, отправитель
никогда не передаст трафик в большем объеме, чем получатель готов принять.
Это позволяет гарантировать отсутствие потерь ячеек даже при перегрузках,
так как все ресурсы коммутатора ATM заранее зарезервированы и распределены
между входящими потоками. Конечно, при определенных условиях, в частности
по причине внутренних неисправностей, источник может некорректно реагировать
на управляющую информацию сети. Однако в этом случае пострадавшим окажется
только он сам, так как ему не будет выделено дополнительное буферное пространство,
и избыточный трафик будет удален из обращения первым же коммутатором ATM.
Следует, однако, отметить, что
применение кредитной схемы управления потоком предполагает серьезную аппаратную
доработку коммутаторов ATM (для поддержки индивидуальных очередей), и разработчикам
стандарта на алгоритмы управления трафиком она показалась излишне сложной
и дорогостоящей в реализации. В результате после долгих дебатов Форум ATM
при окончательном голосовании (7 против 104) отклонил кредитную и утвердил
скоростную схему в качестве базового алгоритма управления трафиком для
категории услуг ABR, что нашло свое отражение в стандарте Traffic Mana-gement
Specification, ver. 4.0.
Однако так ли уж плоха кредитная
схема управления перегрузками? На самом деле, она имеет множество преимуществ
перед скоростными схемами, особенно при работе с сильно неравномерным трафиком
(bursty traffic), как показывает нижеследующее сравнение двух схем управления
потоком по таким основным критериям, как потери ячеек, сложность реализации
(необходимость создания индивидуальных буферов), время разгона (быстрота
увеличения скорости передачи).
Отсутствие потерь ячеек.
Кредитная схема может гарантировать полное отсутствие потерь ячеек независимо
от типа трафика и количества соединений, поскольку в случае даже самой
сильной перегрузки объем поступающего трафика не может превысить размер
кредита, выделенного коммутатором ATM для данного соединения. Иными словами,
трафик является предсказуемым, и под него уже будет отведен определенный
ресурс. Конечно, потери ячеек могут быть вызваны ошибками в канале и т.
п., но это уже никак не связано с применяемой схемой контроля трафика.
Скоростная схема не может предотвратить
потери ячеек. При использовании скоростных схем для категории услуг ABR
потери ячеек будут возникать во многих ситуациях. Прежде всего это связано
с самими принципами работы ABR TM 4.0, как-то:
-вероятность потерь из-за переполнения буферов, так как,
в принципе, их состояние не контролируется;
-расчет скорости, исходя из средних значений во многих
практических реализациях. Как следствие, любое отклонение от средней величины
приводит либо к простою ресурсов, либо к перегрузке (в последнем случае
это влечет за собой потери ячеек);
-недостаточно быстрая реакция алгоритма управления потоком
на изменение ситуации в сети.
Дело в том, что в отличие от
кредитных схем, в которых обмен управляющей информацией происходит между
соседними устройствами, в скоростных схемах он осуществляется между конечными
пользователями, и, следовательно, задержка на распространение управляющей
информации значительно больше. (Хотя использование VS/VD позволяет частично
решить эту проблему.)
В кредитной же схеме кредит
выделяется с учетом имеющегося свободного буферного пространства, что предотвращает
саму возможность переполнения буферов по вине трафика ABR. Наличие же минимально
короткой обратной связи обеспечивает максимально быструю реакцию. Необходимость
создания индивидуальных буферов. Для использования кредитной схемы управления
потоком необходимым условием является наличие индивидуальных буферов под
каждое виртуальное соединение (даже под неактивные VCC/VPC). При использовании
скоростной схемы индивидуальные буферы не требуются.
Создание индивидуальных
буферов — достаточно сложное и дорогостоящее решение. И это было одним
из главных аргументов против кредитной схемы на момент принятия стандарта
ABR TM 4.0. Однако в настоящее время практически все серьезные производители
так или иначе используют принцип индивидуальных буферов (Per-VC Queuing)
в целях обеспечения надлежащего качества обслуживания трафика CBR и VBR
своих клиентов. Кроме того, введение индивидуальных буферов бывает необходимо
и при скоростных схемах ABR, для защиты от неконтролируемых источников,
когда они не реагируют (или реагируют некорректно) на управляющие сообщения,
бесконтрольно увеличивая свою скорость и занимая общие буферы.
Таким образом, в реальной практике
идея использования индивидуальных буферов уже не кажется неуместной и,
следовательно, не является непреодолимым препятствием на пути внедрения
кредитных схем управления потоком.
Время разгона. В большинстве
скоростных схем коэффициент увеличения скорости является функцией от текущей
скорости.
В общем случае:
ER = CCR / Z
где ER (Explicit Rate) — требуемая скорость,
CCR (Current Cell Rate) — текущая скорость,
Z — коэффициент загрузки коммутатора АТМ (Z<1).
Отсюда следует, что потоки с высокой текущей скоростью имеют потенциально лучшие возможности для увеличения своей скорости. В любом случае, во многих реализациях скоростных схем алгоритму ABR потребуется несколько циклов подсчета ER, прежде чем источник наберет максимальную скорость и задействует всю свободную пропускную способность. При использовании кредитной схемы скорость источника может быть увеличена практически мгновенно, вплоть до максимально возможной, за счет расширения кредита.